
package Control;

import Database.ConexaoDB;
import Model.Bairro;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class Control_Bairro {
    
    Connection con = new ConexaoDB().conectar();
    PreparedStatement pstm;
    ResultSet rs;
    
    String cadastraBairro = "INSERT INTO BAIRRO(BAIRRO_ID, BAIRRO_DESCRICAO) VALUES(0,?)";
    
    String alteraBairro = "UPDATE BAIRRO SET BAIRRO_DESCRICAO=? WHERE BAIRRO_ID=?";
     
    String excluiBairro = "DELETE FROM BAIRRO WHERE BAIRRO_ID=?";
    
    String consultaBairroCodigo = "SELECT * FROM BAIRRO WHERE BAIRRO_ID LIKE ?";
    
    String consultaBairroNome = "SELECT * FROM BAIRRO WHERE BAIRRO_DESCRICAO LIKE ?";
    
    String consultaBairroTodosNome = "SELECT * FROM BAIRRO ORDER BY BAIRRO_DESCRICAO";
    
    String consultaBairroTodosCodigo = "SELECT * FROM BAIRRO ORDER BY BAIRRO_ID";
    
      
    ConexaoDB BD = new ConexaoDB();
    
    
    public Control_Bairro(){ }                                
    
    public void cadastrarBairro(Bairro bairro){
         try{
            pstm = BD.conectar().prepareStatement(cadastraBairro);
            pstm.setString(1, bairro.getBairro_descricao());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void alterarBairro(Bairro bairro){
         try{
            pstm = BD.conectar().prepareStatement(alteraBairro);
            pstm.setString(1, bairro.getBairro_descricao());
            pstm.setInt(2, bairro.getBairro_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public void excluirBairro(Bairro bairro){
         try{
            pstm = BD.conectar().prepareStatement(excluiBairro);
            pstm.setInt(1, bairro.getBairro_id());
            pstm.executeUpdate();
            BD.desconectar(con);
         }
         catch(Exception e){
               e.printStackTrace();   
            }
    }
    
    public java.util.List<Bairro> listarBairroCodigo(String codigo){
        java.util.List<Bairro> bairro = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaBairroCodigo);
            pstm.setString(1, codigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Bairro bar = new Bairro();
                bar.setBairro_id(rs.getInt("bairro_id"));
                bar.setBairro_descricao(rs.getString("bairro_descricao"));
                bairro.add(bar);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return bairro;
    }
    
    public java.util.List<Bairro> listarBairroNome(String nome){
        java.util.List<Bairro> bairro = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaBairroNome);
            pstm.setString(1, nome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Bairro bar = new Bairro();
                bar.setBairro_id(rs.getInt("bairro_id"));
                bar.setBairro_descricao(rs.getString("bairro_descricao"));
                bairro.add(bar);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return bairro;
    }
    
    public java.util.List<Bairro> listarBairroTodosNome(){
        java.util.List<Bairro> bairro = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaBairroTodosNome);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Bairro bar = new Bairro();
                bar.setBairro_id(rs.getInt("bairro_id"));
                bar.setBairro_descricao(rs.getString("bairro_descricao"));
                bairro.add(bar);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return bairro;
    }
    
    public java.util.List<Bairro> listarBairroTodosCodigo(){
        java.util.List<Bairro> bairro = new ArrayList();
        try{
            pstm = BD.conectar().prepareStatement(consultaBairroTodosCodigo);
            rs = pstm.executeQuery();
            
            while (rs.next()){
                Bairro bar = new Bairro();
                bar.setBairro_id(rs.getInt("bairro_id"));
                bar.setBairro_descricao(rs.getString("bairro_descricao"));
                bairro.add(bar);
            }
            BD.desconectar(con);
        } catch(Exception e){
            e.printStackTrace();
        }
        return bairro;
    }
    
}
